import  cv2 as cv
filename = r'lena.jpg'
img = cv.imread(filename)
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)

cv.imwrite('lena_gray.jpg',gray)

print(gray)

cv.imshow('source img',img)
cv.imshow('gray img',gray)
cv.waitKey()

hsv = cv.cvtColor(img,cv.COLOR_BGR2HSV)
cv.imshow('H',hsv[:,:,0])
cv.imshow('S',hsv[:,:,1])
cv.imshow('V',hsv[:,:,2])
cv.imwrite('lena_H.jpg',hsv[:,:,0])
cv.imwrite('lena_S.jpg',hsv[:,:,1])
cv.imwrite('lena_V.jpg',hsv[:,:,2])
cv.waitKey()

#将BGR通道分别展示，由于仅展示单通道，效果为黑白图像
#可比较前面输出的gray图像，可以发现G通道效果最接近gray图像的细节，在有些视频处理的快速算法中会直接用G通道代替gray使用，以提高速度
cv.imshow('B',img[:,:,0])
cv.imshow('G',img[:,:,1])
cv.imshow('R',img[:,:,2])
cv.imwrite('lena_B.jpg',img[:,:,0])
cv.imwrite('lena_G.jpg',img[:,:,1])
cv.imwrite('lena_R.jpg',img[:,:,2])
cv.waitKey()

#将BGR通道分别展示，B、G、R分别以自己的颜色展示，此种展示形象，但是不利于对比不同通道的细节
b=img.copy()
b[:,:,1]=0
b[:,:,2]=0
cv.imshow('B',b)

g=img.copy()
g[:,:,0]=0
g[:,:,2]=0
cv.imshow('G',g)

r=img.copy()
r[:,:,0]=0
r[:,:,1]=0
cv.imshow('R',r)

cv.waitKey()

cv.destroyAllWindows()